學了文字分類(Text Classification),可以自動幫文章加上類別標籤。
但很多時候,我們不只是想知道文章的類別,而是希望直接從文字中抽取出具體資訊。
例如:
一篇新聞中有哪些人名?
文件裡出現了哪些地點與時間?
電影評論裡提到哪些公司或品牌?
這就是命名實體識別(Named Entity Recognition, NER)的目標。
一、什麼是命名實體識別?
命名實體識別(NER) 是自然語言處理(NLP)的任務,用來從文字中辨識並分類實體。
常見的實體類型包括:
PERSON:人名
ORG:組織、公司
GPE:地名(城市、國家)
DATE:日期或時間
MONEY:金額
例如:
"Apple plans to open a new office in Singapore in 2025."
NER 的輸出可能是:
Apple → ORG
Singapore → GPE
2025 → DATE
二、NER 的應用場景
新聞資訊抽取:自動抽取新聞中的人物、地點、事件。
金融應用:提取公司名稱、股市數據、金額。
醫療領域:識別病名、藥品名稱。
知識圖譜:構建人名-組織-事件之間的關係網絡。
三、Python實作:使用spaCy進行NER
spaCy是一個強大的NLP函式庫,支援快速的NER。
#安裝套件
#pip install spacy
#python -m spacy download en_core_web_sm
import spacy
#載入英文模型
nlp = spacy.load("en_core_web_sm")
#測試文本
text = "Elon Musk founded SpaceX in California in 2002 and acquired Twitter in 2022."
doc = nlp(text)
#輸出實體
for ent in doc.ents:
print(ent.text, ent.label_)
範例輸出:
Elon Musk PERSON
SpaceX ORG
California GPE
2002 DATE
Twitter ORG
2022 DATE
學會了命名實體識別(NER),理解了它能自動從文本中抽取出人名、地名、組織、時間等實體資訊。
這項技術在新聞、金融、醫療等領域都有極高的實用價值。